package com.ict.web.vo;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ict.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author xc
 */
@Data
public class ProjectManagementVo {
    /** 项目id */
    @ApiModelProperty(value = "项目id")
    @TableId(value = "pro_id",type = IdType.ASSIGN_ID)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long proId;

    /** 项目名称 */
    @ApiModelProperty(value = "项目名称")
    @Excel(name = "项目名称")
    private String name;

    /** 项目性质:{0:年度项目;1:增补项目;} */
    @ApiModelProperty(value = "项目性质:{0:年度项目;1:增补项目;}")
    @Excel(name = "项目性质:{0:年度项目;1:增补项目;}")
    private String nature;

    /** 项目单位 */
    @Excel(name = "项目单位")
    @ApiModelProperty(value = "项目单位")
    private String company;

    /** 项目类别:{0:建设类;1:购买服务类;2运维类} */
    @ApiModelProperty(value = "项目类别:{0:建设类;1:购买服务类;2运维类}")
    @Excel(name = "项目类别:{0:建设类;1:购买服务类;2运维类}")
    private String type;

    /** 投资估算 */
    @ApiModelProperty(value = "投资估算")
    @Excel(name = "投资估算")
    private BigDecimal investmentEstimation;

    /** 阶段：{0:项目申报  1:方案申报  2:项目实施  3:项目验收} */
    @ApiModelProperty(value = "阶段：{0:项目申报  1:方案申报  2:项目实施  3:项目验收}")
    @Excel(name = "阶段")
    private String stag;

    /** 节点 */
    @ApiModelProperty(value = "节点")
    @Excel(name = "节点")
    private String node;

    /** 项目状态*/
    @ApiModelProperty(value = "项目状态")
    private String isState;

    /** 评审意见 */
    @ApiModelProperty(value = "评审意见")
    @Excel(name = "评审意见")
    private String reviewComments;

    /** 年度项目计划id */
    @ApiModelProperty(value = "年度项目计划id")
    @Excel(name = "年度项目计划id")
    private Long planId;

    /** 年度申报id */
    @ApiModelProperty(value = "年度申报id")
    @Excel(name = "年度申报id")
    private Long annualId;

    /** 增补申报id */
    @ApiModelProperty(value = "增补申报id")
    @Excel(name = "增补申报id")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long supplementaryId;

    /** 方案申报id */
    @Excel(name = "方案申报id")
    @ApiModelProperty(value = "方案申报id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableField(updateStrategy  = FieldStrategy.IGNORED)
    private Long programmeId;

    /** 评审任务id */
    @Excel(name = "评审任务id")
    @ApiModelProperty(value = "评审任务id")
    @TableField(updateStrategy  = FieldStrategy.IGNORED)
    private Long reviewTaskId;

    /** 合同id */
    @Excel(name = "合同id")
    @ApiModelProperty(value = "合同id")
    private Long contractId;

    /** 里程碑id */
    @ApiModelProperty(value = "里程碑id")
    @Excel(name = "里程碑id")
    private Long milepostId;

    /** 发改/财政审批备案id */
    @ApiModelProperty(value = "发改/财政审批备案id")
    @Excel(name = "发改/财政审批备案id")
    private Long financeId;

    /** 初验备案id */
    @ApiModelProperty(value = "初验备案id")
    @Excel(name = "初验备案id")
    private Long firstCheckId;

    /** 合规id */
    @Excel(name = "合规id")
    @ApiModelProperty(value = "合规id")
    private Long complianceId;

    /** 终验备案id */
    @Excel(name = "终验备案id")
    @ApiModelProperty(value = "终验备案id")
    private Long lastCheckId;

    /** 三方id */
    @Excel(name = "三方id")
    @ApiModelProperty(value = "三方id")
    private Long tripartiteId;

    /** 绩效id */
    @Excel(name = "绩效id")
    @ApiModelProperty(value = "绩效id")
    private Long perId;

    /**
     * 申报时间
     */
    @ApiModelProperty(value = "申报时间")
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /** 逻辑删除：{0:正常;1:删除} */
    @Excel(name = "逻辑删除：{0:正常;1:删除}")
    private String isDelete;

    /** 操作人id */
    @Excel(name = "操作人id")
    private Long userId;

    /** 操作人昵称 */
    @Excel(name = "操作人昵称")
    private String nickName;

    /** 操作人昵称 */
    @ApiModelProperty(value = "审核进程")
    private ApprovalVo approvalVo;
}
